
#include "mini_inc.h"
#include "mini_inotify.h"

int
mini_inotify_init(void)
{
    int fd = inotify_init();
    if (fd < 0) {
        mini_perror("mini_inotify_init");
    }
    return fd;
}

void
mini_inotify_exit(int fd)
{
    close(fd);
}

//#define MINI_INOTIFY_MASK   IN_MOVED_TO
#define MINI_INOTIFY_MASK   IN_MOVED_TO | IN_MODIFY | IN_CREATE | IN_DELETE
int
mini_inotify_addwatch(int fd, const char *path)
{
    int wd = 0;
    
    xprintf("add watch: %s\n", path);
    wd = inotify_add_watch(fd, path, MINI_INOTIFY_MASK);
    if (wd < 0) {
        mini_perror(__FUNCTION__);
    }
    return wd;
}

void
mini_inotify_rmwatch(int fd, int wd)
{
    if (inotify_rm_watch(fd, wd) < 0) {
        mini_perror("mini_inotify_rmwatch");
    }
}

int
mini_inotify_read(int fd, char *buf, int buflen)
{
    int len = read(fd, buf, buflen);  
    if (len < 0) {
        mini_perror("mini_inotify_read");
    }  
    return len;
}

